/**
 * 商品表 有待升级
 * @see https://open.youzan.com/v3/apicenter/doc-api-main/1/2/item/youzan.item.create
 */
export interface Goods {
  id?: number;
  shop_id?: number;
  /** 商品标题 */
  title: string;
  /** 商品类型 */
  type?: GoodsType;
  /** 商品图片hash[,] */
  images?: string;
  /** 商品短视频 */
  video?: string;
  /** 商品简介 */
  desc?: string;
  /** 商品属性 */
  infos?: GoodsInfo[];
  /** 
   * @name 详情类型
   * @enum 1 富文本
   * @enum 2 简易图文
   * @enum 3 微页面
   */
  detail_type?: 1 | 2 | 3;
  /** 图文富文本 */
  richtext?: string;
  /** 商品留言信息 */
  messages?: GoodsMessageItem[] | string;
  /** 系统分类标签 */
  systags?: string | string[];
  /** 商品分类标签number[,] */
  tag_id?: number; // 空间换时间
  grouptags?: number[] | string;
  /** 库存数量 */
  quantity?: number;
  /** 销量 */
  sold_num?: number;
  /** 销量基数 */
  base_sold_num?: number;
  /** 点赞数量 @deprecated */
  like_count?: number;
  price?: number;
  /** 原价 */
  origin_price?: string;
  /** 成本价 */
  cost_price?: number;
  /** 包装费 */
  pack_fee?: number;
  /** 配送费 */
  post_fee?: number;
  /** 商品规格 */
  skus?: GoodsSku[] | string;
  /** 商家编码 */
  outer_id?: string;
  /** 重量 */
  weiget?: number;
  /** 单位 */
  unit?: string;
  /** 限量 暂时未用此字段 只在拼团时使用过 BigImage */
  /** 每人限购多少件。0代表无限购，默认为0 */
  buy_quota?: number;
  /** 开始出售时间。默认0，设置为0 立即出售 @deprecated 开售时间重复 */
  auto_listing_time?: number;
  start_at?: string | Date;
  end_at?: string | Date;
  create_time?: number;
  update_time?: number;
  stock?: number;
  steps?: GroupStep[];
  /** 是否被锁定 */
  is_lock?: 0 | 1;
  is_display?: 0 | 1;
  /**
   * 锁定类型
   * 参与拼团活动 锁定后不可以更改价格及规格
   */
  lock_type?: 1;
  /**
   * 扩展字段
   */
  image?: string; // GoodsFast 使用1次
  /** 浏览量 */
  display_num?: number;
}

/**
 * 商品类型
 * 1 商品 2 服务 3 团购 4 拼团
 */
export type GoodsType = 1 | 2 | 3 | 4;

export interface GoodsObj {
  [propName: number]: Goods;
}

export interface GoodsSku {
  sku_id?: number;
  shop_id?: number;
  goods_id?: number;
  price?: number;
  /** 规格图 */
  image?: string;
  /** 成本价 */
  cost_price?: number;
  kvs?: GoodsSkuKvs | string;
  properties_name?: string;
  quantity?: number;
  /** 商家编码 */
  outer_id?: string;
  create_time?: number;
  update_time?: number;
}

export type GoodsSkuKvs = GoodsSkuKv[];

export interface GoodsSkuKv {
  key: string;
  value: string;
}

export interface GoodsSkuAttrItem {
  active: string;
  valuesArr: string[];
  values: {};
}

export interface GoodsSkuAttr {
  [propName: string]: GoodsSkuAttrItem;
}

export interface GroupStep {
  /** 成团人数 */
  group_num: number;
  /** 成团价格 */
  group_price: number;
}

export interface GoodsInfo {
  key: string;
  value1: string;
  value2: string;
}

export interface GoodsMessageItem {
  name: string;
  type: string;
  value: string;
  required?: boolean;
  rows?: boolean;
}

export interface GoodsMessage {
  num: number;
  messages: GoodsMessageItem[];
}


/**
 * 商品导入
 */
export interface GoodsTake {
  id?: number;
  name?: string;
  create_time?: number;
  shop_id?: number;
}

/**
 * 商品导入记录
 */
export interface GoodsTakeItem {
  ti_id?: number;
  take_id?: number;
  outer_id?: number;
  goods_title?: string;
  goods_sku?: string;
  goods_unit?: string;
  num?: number;
  shop_id?: number;
}
